package cn.lili.timetask.handler.impl.coupon;

import cn.lili.modules.promotion.client.MemberCouponClient;
import cn.lili.timetask.handler.EveryDayExecute;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;

/**
 * 优惠券状态监测
 *
 * @author Bulbasaur
 * @since 2021/5/24 10:08 上午
 */
@Component
@RequiredArgsConstructor
public class CouponExecute implements EveryDayExecute {

    /**
     * 过期常量，过期后或者使用后一定时间内，删除无效的优惠券，物理删除
     */
    static final int EXPIRATION_DAY = 3;

    private final MemberCouponClient memberCouponClient;

    /**
     * 检测优惠券的使用时间，超期未使用则失效
     * 此方法用于领取*天后失效优惠券使用
     */
    @Override
    public void execute() {
        memberCouponClient.expireInvalidMemberCoupon();
        memberCouponClient.removeInvalidMemberCoupon(EXPIRATION_DAY);
    }

}
